feat(web): launch sqlrite.dev — landing, /docs, benchmarks viz, doc sweep (SQLR-1)#117
Merged
Conversation
The roadmap, supported-SQL reference, and the docs index had drifted
behind nine minor releases of actual SQL-surface work. Each item below
was independently shipped under its own SQLR-* / PR but had been
languishing under "Possible extras" or in the "Not yet supported"
list — confusing for anyone reading the docs to figure out what the
engine actually does today.
Phase 9 (v0.2.0 → v0.9.1) — promoted from "extras" to a real phase:
9a · v0.3.0 · DEFAULT clause + DROP TABLE/INDEX + ALTER TABLE
9b · v0.4.0 · free-list + manual VACUUM (SQLR-6)
9c · v0.5.0 · auto-VACUUM trigger past 25% (SQLR-10)
9d · v0.5.1 · IS NULL / IS NOT NULL + Option<Value> INSERT (SQLR-7)
9e · v0.6.0 · GROUP BY + aggregates + DISTINCT + LIKE + IN (SQLR-3)
9f · v0.7.0 · JOINs — INNER, LEFT, RIGHT, FULL OUTER (SQLR-5)
9g · v0.9.0 · prepared statements + ? param binding (SQLR-23)
9h · v0.9.0 · HNSW probe widened to cosine + dot (SQLR-28)
9i · v0.9.1 · PRAGMA dispatcher + auto_vacuum knob (SQLR-13)
Phase 10 — benchmarks vs SQLite + DuckDB (SQLR-4 / SQLR-16, twelve
workloads, pinned-host runs published).
Also fixed:
- docs/supported-sql.md "Not yet supported" was self-contradicting:
body documented LIKE / IN / GROUP BY / aggregates / DISTINCT /
ALTER TABLE / DROP / VACUUM in detail, then claimed they weren't
supported. Pruned the now-stale entries; left HAVING, BETWEEN,
GLOB / REGEXP, GROUP_CONCAT, named placeholders, MVCC, etc.
- docs/_index.md "Project state" gained Phase 9 + Phase 10 lines.
- The "Active frontier" callout at the top of roadmap.md no longer
points at the v0.2.0 milestone (already shipped six minor releases
ago).
- The "Possible extras" tail block now lists only what's actually
open (subqueries, CTEs, HAVING, CASE, BETWEEN, OFFSET, multi-col
ORDER BY, MVCC, savepoints, more pragmas, etc.).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
A new Next.js 15 + Tailwind v4 site under web/, intentionally
self-contained (own package.json, no Cargo coupling) so it can be
extracted into its own repo later without rewrites. Deploys to Vercel
out of the box — point Vercel at web/ as the Root Directory and the
framework preset handles the rest.
Two pages, eleven sections, no client-side chart library.
Landing (/)
01 Hero · animated SQL REPL + cargo-install bar, hero-meta calls out
"Phases 0–10 shipped · v0.9.1 on crates.io / PyPI / npm"
02 Features · 12-card grid covering pager, B-tree, WAL, transactions,
JOINs + aggregates, prepared statements, HNSW, FTS, free-list +
auto-VACUUM, six SDKs, Tauri + MCP, "built to be read"
03 Architecture · 7-layer diagram from input → storage
04 Roadmap · timeline with done / active / next states; Phase 9
sub-phases (v0.2.0 → v0.9.1) and Phase 10 (benchmarks) match the
repo's docs/roadmap.md 1:1
05 SDK switcher · tabbed Rust/Python/Node/Go/C/WASM with per-SDK
install command, version, registry, and a copy-pasteable example
06 SQL surface · statement table including JOINs, aggregates,
ALTER TABLE, DROP TABLE/INDEX, VACUUM, PRAGMA, prepared statements;
plus an honest "not yet supported" pill list
07 Benchmarks · pure-CSS proportional bars (no chart library) sized
per-row so "shorter = faster" lines up with "lower is better".
Three headline stats (~50× HNSW, 1.6–1.9× read-path gap, 608 µs
hybrid), four chart groups (the HNSW win, OLTP read paths, FTS +
hybrid, DuckDB analytical lead), four SQLR-tagged engineering
debts, and links to the canonical doc + raw JSON envelope
08 Desktop · Tauri 2.0 + Svelte 5 mockup with download buttons
09 Blog · four-card grid pointing at the Medium series
CTA strip + footer with author socials (GitHub, LinkedIn, X)
Docs (/docs)
Sticky sidebar nav + on-page TOC. New sections for JOINs,
GROUP BY & aggregates, ALTER / DROP / VACUUM, prepared statements,
PRAGMA, vector search, full-text search, the MCP server. The
"Supported SQL" summary lists JOINs, aggregates, predicates,
prepared statements, pragmas as their own bullets.
Stack
- Next.js 15.5.18 (App Router) + React 19 + TypeScript (strict)
- Tailwind v4 (CSS-first @theme config in src/app/globals.css)
- shadcn/ui infrastructure (components.json + cn helper) — bespoke
components on top, no premature abstraction
- lucide-react for icons; next/font for Inter + JetBrains Mono
- "use client" only where state lives (terminal, install-bar,
sdk-showcase). Everything else is a Server Component.
- SQL highlighter is a tokenizer that returns React nodes — no
dangerouslySetInnerHTML anywhere in the tree.
Verified:
- npm run typecheck ✓
- npm run lint ✓ (no warnings)
- npm run build ✓ — 5 static pages, 3.9 kB / 110 kB First Load
JS landing
- render-test on dev server: every nav anchor resolves; per-row
benchmark bar widths come out at the right proportions (HNSW
1.99% next to brute-force 100%, DuckDB clamped to 1.5% min so
label is still readable)
CLAUDE.md + README.md gain a one-line pointer to web/ so a
first-time reader of the repo finds the site without grepping.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two coordinated changes that share a goal: give SQLRite a public face that actually matches what the engine does today.
1. New website under
web/— a Next.js 15 + Tailwind v4 site, faithful to the Claude Design prototype but with content driven from a typed config that mirrors the canonical docs. Two pages, eleven sections, no client-side chart library, deploys to Vercel out of the box.2. Repo doc sweep —
docs/roadmap.md,docs/supported-sql.md, anddocs/_index.mdhad drifted behind nine minor releases of actual SQL-surface work. Promoted the v0.2.0 → v0.9.1 wave from "Possible extras" into a real Phase 9 (sub-phases 9a–9i) and added Phase 10 (benchmarks). Same reality now reflects on both the website and onmain.Closes SQLR-1.
What's on the site
Landing (
/)Phases 0–10 shipped · v0.9.1metadocs/roadmap.md1:1, including Phase 9 sub-phases and Phase 10@CodePolyglot)Docs (
/docs)Sticky sidebar nav + on-page TOC. New sections for JOINs, GROUP BY & aggregates, ALTER / DROP / VACUUM, prepared statements, PRAGMA, vector search, full-text search, MCP server. The "Supported SQL" summary at the bottom now lists JOINs, aggregates, predicates, prepared statements, pragmas as their own bullets.
Benchmarks visualization
The marquee piece — designed for the dark-editorial / terminal vibe rather than reaching for a chart library.
docs/benchmarks.md+ the raw JSON envelope.Update path on the next pinned-host run: edit
RUN_META.date/commit/sourcePathand any affectedmedian_ns+labelfields inweb/src/lib/benchmarks.ts. The visualization scales itself — no chart-library upgrade dance.Doc sweep
docs/roadmap.mdPromoted Phase 9 (v0.2.0 → v0.9.1) and Phase 10 (benchmarks) into the document. Each sub-phase points at its release and SQLR ticket:
DEFAULT/DROP TABLE/DROP INDEX/ALTER TABLEVACUUMIS NULL/IS NOT NULL+Option<Value>INSERTGROUP BY+ aggregates +DISTINCT+LIKE+IN?parameter bindingPRAGMAdispatcher +auto_vacuumknobThe "Possible extras" tail block now lists only what's actually open: subqueries, CTEs, HAVING, CASE, BETWEEN, GLOB / REGEXP, OFFSET, multi-column ORDER BY, MVCC, savepoints, more pragmas, etc.
docs/supported-sql.mdThe body was correct; the "Not yet supported" section had been self-contradicting (claiming GROUP BY / aggregates / LIKE / IN / ALTER / DROP / VACUUM weren't supported while the body documented them in detail). Pruned the now-stale entries; left HAVING, BETWEEN, GLOB / REGEXP, GROUP_CONCAT, named placeholders, MVCC, etc.
docs/_index.md"Project state" section gained Phase 9 + Phase 10 lines so a first-time reader sees them at a glance.
Stack notes
@themeinsrc/app/globals.css) + shadcn/ui infrastructure (components.json+cnhelper).next/fontfor Inter + JetBrains Mono."use client"only on the three components that need state (terminal,install-bar,sdk-showcase); everything else is RSC.dangerouslySetInnerHTMLanywhere.web/src/lib/site.ts.Test plan
cd web && npm installnpm run typecheck— cleannpm run lint— no warnings or errorsnpm run build— 5 static pages, 3.9 kB / 110 kB First Load JS landingcurl + grepdangerouslySetInnerHTMLin the tree (code-reviewer-confirmed)/docs(sidebar links jump correctly; scroll-spy follow-up tracked separately as SQLR-29)Vercel deploy
Point Vercel at
web/as the Root Directory. Framework preset auto-detects Next.js. No environment variables required.Follow-ups (already filed in marvinapp)
/docssidebar navweb/build + lint into CI (paths-filtered job)web/Diff scope
🤖 Generated with Claude Code